import util.control.Breaks._
/**
  1.for  yield 表达式: 遍历一个集合类型，返回一个新的集合类型
  2.scala中的break需要导包首先需要导入scala.util.control.Breaks._这个包
*/

  println("Welcome to the Scala worksheet")
  //--------Map--------------
  
 val m1 = Map("tom" -> 12,"rose" -> 23)

 for(i <- m1)  {
  println(i)

 }
 for((k,v) <- m1)  {
     println(k +" = "+v)

 }
 
 //-----for  yield 表达式: 遍历一个集合类型，返回一个新的集合类型
 //for  yield 返回一个数组
 val a1 = Array(1,2,3)
 val a2 = for(i <- a1)yield{i*2}
 //for  yield 返回一个新List
 val l1 = List(1,2,3)
 val l2 = for(i <- l1)yield(i+ 10)
//------------异常-----------------
  try{
    throw new NullPointerException
  
  }catch{
    case t:NullPointerException =>{
       println("NullPointerException")
    }
    case t:Exception =>{
       println("Exception")
    }
  
  }finally{
  
    println("finaly")
  }

//----------------match 相当于 java中的switch case
//可以有返回值
	val s1 = "hello"
	val r1 = s1 match{
	  case "hello" =>{
	     println(1)
	      1
	  }
	  case "world" =>{
	   print(2)
	     2
	  }
 	}

 //-----------------for循环中的break 和 continue
 //注意，需要导包首先需要导入scala.util.control.Breaks._这个包
 breakable(
 	for(i <- 1 to 4){
   if(i>3) break else println(i)
 
	})
  //相当于continue
	 for(i <- 1 to 4){
	   breakable(
	   if(i ==3){ break } else{ println(i)}
	   )
	 
	 }
	
